﻿/***********************************************************************************************
 * 
 * ProjectName: WMSSoft.Lib.WinKStart
 * 
 * Description: Class to configure reading style to object
 * 
 * Created:     24.08.2014
 * 
 * Author:      matthias wagler - matthias@WMSSoft.de
 * 
 * Copyright:   Copyright 2014 by WMSSoft.net
 * 
 * License:     GPLv3
 * 
 * History:     24.08.2014 - matthias wagler matthias@WMSSoft.de   -   Created
 * 
 **********************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using WMSSoft.Lib.Enums;

namespace WMSSoft.Lib.WinKStart.Classes.Styles
{
    /// <summary>
    /// The Class Contains a Configuration - Object to describe Styles for the Window and her subelements
    /// </summary>
    public class cUIWindow
    {
        private Color _BackgroundColorStart = Color.FromRgb(255, 255, 255);
        private Color _BackgroundColorEnd = Color.FromRgb(220, 220, 220);
        private eDrawingMode _DrawingMode = eDrawingMode.SingleColor;
        private cUIGradientStyle _Gradient = null;
        private cUIBorderStyle _BorderStyle = null;
        private Thickness _Padding = new Thickness();
        private cUIWindowElements _Elements = null;
        private double _Height = 0;
        private double _Width = 0;

        /// <summary>
        /// Describe the StartColor for Windows Background
        /// </summary>
        public Color BackgroundColorStart
        {
            get { return _BackgroundColorStart; }
            set { _BackgroundColorStart = value; }
        }

        /// <summary>
        /// Describe the Endcolor for Windows Background, only used if DrawingMode is setup to Gradient
        /// </summary>
        public Color BackgroundColorEnd
        {
            get { return _BackgroundColorEnd;}
            set { _BackgroundColorEnd = value; }
        }

        /// <summary>
        /// Describe the kind of background to draw: single color or gradient
        /// </summary>
        public eDrawingMode DrawingMode
        {
            get { return _DrawingMode; }
            set { _DrawingMode = value; }
        }

        /// <summary>
        /// if DrawingMode is Gradient the Gradient can configured here
        /// </summary>
        public cUIGradientStyle Gradient
        {
            get { return _Gradient; }
            set { _Gradient = value; }
        }

        /// <summary>
        /// Describe the border around the window
        /// </summary>
        public cUIBorderStyle BorderStyle
        {
            get { return _BorderStyle; }
            set { _BorderStyle = value; }
        }

        public double Height
        {
            get { return _Height; }
            set { _Height = value; }
        }

        public double Width
        {
            get { return _Width; }
            set { _Width = value; }
        }

        /// <summary>
        /// Describe the space between window border and sub elements
        /// </summary>
        public Thickness Padding
        {
            get { return _Padding; }
            set { _Padding = value; }
        }

        /// <summary>
        /// contains styles for windows sub elements
        /// </summary>
        public cUIWindowElements Elements
        {
            get { return _Elements; }
            set { _Elements = value; }
        }
    }
}
